:?
? [commandname]

The TNOS '?' command provides a short list of all the top-level TNOS
commands.

When you specify a commandname, the "?" command acts the same as the "help"
command.

To obtain more help on a particular command, type the command name
followed by a question mark.

>>  Example:  attach ?

See also: help
:!
!     [<DOS_external_command>]

The '!' command serves as a alias for the "shell command.

:abort
abort [<session_number>]

Abort an FTP 'get', 'put' or 'dir' operation in progress.  If
issued without an argument, the current session is aborted. (This
command works only on FTP sessions).

When receiving a file, 'abort' simply resets the data connection;
the next incoming data packet will generate a TCP RST (reset)
response to clear the remote server.

When sending a file, 'abort' sends a premature end-of-file.

Note that in both cases 'abort' will leave a partial copy of the
file on the destination machine; this copy must be removed
manually if it is unwanted.

>> Example:  abort 3
:arp
arp

Display the Address Resolution Protocol (ARP) table that maps IP
addresses to their link addresses (callsigns) on networks capable
of broadcasting.  For each IP address entry the network type
(e.g. Ethernet, AX.25), network address and time to expiration is
shown.  If the link address (callsign) is currently unknown, the
number of IP datagrams awaiting resolution is also shown.

arp add <host> ether|ax25|netrom|arcnet <ether_address>|<callsign> <iface>

arp drop <host> ether|ax25|netrom|arcnet <iface>

arp flush

arp publish <host> ether|ax25|netrom|arcnet <ether_address>|<callsign> <iface>

>> Example:  arp publish ns9ken ax25 NS9KEN-5 ax0
:asystat
asysyat

Display statistics on attached asynchronous communications interfaces (8250
or 16550A).  The display for each port consists of three lines.

The first line gives the port label and the configuration flags; these
indicate whether the port is a 16550A chip, the trigger character if any,
whether CTS flow control is enabled, whether RLSD (carrier detect) line
control is enabled, and the speed in bits per second.  (Receiving the
trigger character causes the driver to signal upper layer software that data
is ready; it is automatically set to the appropriate frame end character for
SLIP, PPP and NRS lines.)

The second line of the status display shows receiver (RX) event counts: the
total number of receive interrupts, received characters, receiver overruns
(lost characters) and the receiver high water mark (HWM).

The HWM is the maximum number of characters ever read from the device during
a single interrupt.  This is useful for monitoring system interrupt latency
margins as it shows how close the port hardware has come to overflowing due
to the inability of the CPU to respond to a receiver interrupt in time.

8250 chips have no FIFO, so the HWM cannot go higher than 2 before overruns
occur.  The 16550A chip, however, has a 16-byte receive FIFO which the
software programs to interrupt the CPU when the FIFO is one-quarter full.

The HWM should typically be 4 or 5 when a 16550A is used; higher values
indicate that the CPU has at least once been slow to respond to a receiver
interrupt.

When the 16550A is used, a count of FIFO timeouts is also displayed on the
RX status line.  These are generated automatically by the 16550A when three
character intervals go by with more than 0 but less than 4 characters in
the FIFO.  Since the characters that make up a SLIP or NRS frame are
normally sent at full line speed, this count will usually be a lower bound on
the number of frames received on the port, as only the last fragment of a
frame generally results in a timeout (and then only when the frame is not
a multiple of 4 bytes long).

Finally on the second line, the software FIFO overruns and HWM are displayed.
These indicate whether the <bufsize> parameter on the 'attach' command needs
to be adjusted.

The third line shows transmit (TX) statistics, including a total count of
transmit interrupts, transmitted characters, the length of the transmit
queue in bytes, the number of status interrupts, and the number of THREE
timeouts.  The status interrupt count will be zero unless CTS flow control
or RLSD line control has been enabled.  The THRE timeout is a stopgap measure
to catch lost transmit interrupts, which seem to happen when there is a lot of
activity (ideally, this will be zero).
:at
at
:attach
attach <hardware> <hw specific options>

Some of the possible hardware type are below. Not all are supported. Use
"attach ?" for a list of those supported

attach 3c500 <ioaddress> <vector> arpa <interface> <qlen> <mtu> [<ipaddr>]
attach asy <ioaddress> <vector> ax25 | nrs | ppp | slip <interface> <buffers>
     <mtu> <speed> [<slip_options>]
attach asy <ioaddress> <vector> ax25 <interface> <buffers> <mtu> <speed>
attach asy <ioaddress> <vector> nrs <interface> <buffers> <mtu> <speed>
attach asy <ioaddress> <vector> ppp <interface> <buffers> <mtu> <speed>
attach asy <ioaddress> <vector> slip <interface> <buffers> <mtu>
     <speed> [<slip_options>]
attach axip <interface> <mtu> <their_host> <my_axip_callsign>
attach drsi <ioaddress> <vector> ax25 <interface> <bufsize> <mtu>
     <ch_a_speed> <ch_b_speed>
attach eagle <ioaddress> <vector> ax25 <interface> <bufsize> <mtu> <speed>
attach hapn <ioaddress> <vector> ax25 <interface> <bufsize> <mtu> csma | full
attach hs <ioaddress> <vector> ax25 <interface> <bufsize> <mtu>
     <key_up_delay> <p>
attach kiss <existing_asy_interface> <port> <interface> [<mtu>]
attach netrom
attach packet <vector> <interface> <txqlen> <mtu>
attach pc100 <ioaddress> <vector> ax25 <interface> <bufsize>
attach pi
attach scc <devices> init <addr> <spacing> <Aoff> <Boff><Dataoff>
     <intack> <vec> [p|r]<clock> [<hardware_type>] [<param>]
attach scc <chan> slip|kiss|nrs|ax25 <interface> <mtu> <speed>
     <bufsize> [<callsign>]
attach slfp
:attended
attended [on|off]                                     Default: on

Display or set the station attended flag.  When set to 'on',
other stations can chat to you (with the 'ttylink' command, for
example).

>> Example:  attended off
:autoroute
autoroute
:ax25
ax25 [sub-commands]

ax25 bc <interface>
ax25 bcinterval [<seconds>]                 Default: 0 (disabled)
ax25 bctext ["<broadcast_text"]
ax25 blimit [<count>]                                 Default: 30
ax25 digipeat [on | off]                              Default: on
ax25 filter  [0 | 1 | 2 | 3]            Default: 0 (no filtering)
ax25 flush
ax25 heard
ax25 hearddest <interface>
ax25 irtt [<millisecs>]                             Default: 5000
ax25 kick <&AXB>
ax25 maxframe [<window_size>]                          Default: 1
ax25 mycall [<callsign>]
ax25 paclen [<bytes>]                                Default: 256
ax25 pthresh [<bytes>]                               Default: 128
ax25 reset <&AXB>
ax25 retry [<count>]                                  Default: 10
ax25 route
ax25 route add <target_callsign> [digi_callsign ... ]
ax25 route drop <target_callsign>
ax25 route mode <target_callsign> [vc|datagram|interface]
ax25 status [<&AXB>]
ax25 t3 [<millisecs>]                                  Default: 0
ax25 t4 [<seconds>]                                   Default:300
ax25 timertype [original | linear | exponential]
ax25 version [1|2]                                     Default: 2
ax25 window [<bytes>]                               Default: 2048
:bbs
bbs

Enters your own Mailbox. For a list of all Mailbox commands, use the "?" and
"help" command in the Mailbox.
:bid
bid
:bulletin
bulletin
:connect
connect <interface> <callsign> [<digi_callsign> ...]

Initiate a "vanilla" AX.25 session to the specified <callsign> using the
specified <interface>.  Data sent on this session goes out in conventional
AX.25 packets with no upper layer protocol. The de-facto presentation
standard format is used, in that each packet holds one line of text,
terminated by a CR.

Up to 7 optional digipeaters may be given; note that the words 'via' or 'v'
are NOT used.  If digipeaters are specified, they are automatically added to
the AX.25 routing table as though the 'ax25 route add' command had been given.

After giving the 'connect' command, you should get "Conn Pending" and then
"Connected" messages.  At this point, you're connected just like using a
plain old TNC.

When you're ready to disconnect, use the <F10> key to escape from the session
back to the Command Session prompt, and then give the 'disconnect' command.

See also: split

>> Example:  connect tnc0 AX9AAA AX9DIG
:callserver
:callbook
:cd
cd [<directory>]

Changes the current directory to <directory>, which must be an
existing directory on the local machine.

The directory specified can be relative to the current directory,
or absolute, with the name beginning at the DOS root (/).

Without an argument, 'cd' simply displays the current directory
without change.

The 'pwd' command is an alias for 'cd'.

>> Example:  cd spool/mqueue
:close
close [<session_number>]

Close the specified session.  If you are running only one session, entering
'close' without arguments will close the session.  If you have multiple
sessions, entering 'close' without arguments will initiate a close on the
current session.

If you are running multiple sessions, the 'session' command will display a
list of these sessions.

Entering 'close' with a session number argument will initiate a close on the
specified session.

On an AX.25 session, this command initiates a disconnect.

On an FTP or Telnet session, this command sends a FIN (i.e. initiates a close)
on the session's TCP connection.  This is an alternative to asking the remote
host to initiate a close (QUIT to FTP, or the logout command appropriate for
the remote system in the case of Telnet).

If you are in an FTP or Telnet Converse session, you will have to press <F10>
to escape to the "net>" prompt to issue the 'close' command.  When either FTP
or Telnet sees the incoming half of a TCP connection close, it automatically
responds by closing the outgoing half of the connection.  'Close' is more
graceful than the 'reset' command, in that it is less likely to leave the
remote host in a "half-open" state.

>> Example:  close 3
:cls
cls

Clears the current screen
:color
color <background> <foreground>
:comm
comm <interface> "<string>"

The 'comm' command sends a text-string via <interface>.  This can
be used to send straight text to a TNC still in native TAPR
command mode during NOS startup.

Note that the string is enclosed by double quote characters to
preserve spaces, tabs etc.

>> Examples:  comm tnc0 "MYCALL NS9BOB-5"
              comm tnc0 "MID 179"        (set CW ID interval)
              comm tnc0 "KISS ON"
:conference
conference [hostname] [channel]

Enter the Conference Bridge at "hostname" (or locally, if no "hostname" is
given). If "channel" is given, the initial channel will be set to "channel".

>> Example: conference ko4ks 105
:convers
conv
:copy
copy <file> <newfile>
:disconnect
disconnect [<session_number>]

An alias for the 'close' command (for the benefit of AX.25 users).

If you are in AX.25 converse mode, press <F10> to escape back to the Command
Session prompt to issue this command.  If you are running only one session,
entering 'disconnect' without arguments will terminate the connection.  If
you have multiple sessions, entering disconnect without arguments will
initiate a close on the current session.

If you are running multiple sessions, the "session" command will display a
list of these sessions.  Entering 'disconnect' with a session number argument
will initiate a 'close' on the specified session.  After entering disconnect,
you should get "Disc pending" and then "Disconnected" messages.

>> Example:  close 3
:delete
delete <filename>

Delete a filename in the current working directory.

>> Example:  delete foo.txt
:detach
detach <interface>

Detach a previously attached interface from the system.  All IP routing table
entries referring to this interface are deleted, and forwarding references by
any other interface to this interface are removed.

>> Example:  detach tnc0
:dialer
dialer <interface> [<dialer_file> [<seconds> [<pings> [<host>]]]]

Set up an autodialer session for the interface.  Whenever the interface
is idle for the interval in <seconds>, the autodialer will ping the
<hostid>.  If there is no answer after <pings> attempts, the autodialer
will execute the special commands contained in the <dialer_file>.

If the interval in <seconds> is zero, a previous dialer command process
will be removed.  If the number of <pings> is zero, the <dialer_file>
will be executed without pinging the <host>.

The file may have any valid name, and must be located in the TNOS root
directory.

>> Examples:  dialer sl0 20 ns9tel ns9tel.dia
              dialer sl0 ns9tel.dia 30 10 ns9tel

DIALER FILE COMMANDS
====================

control down|up

Control the 'asy' interface.  The 'down' option drops DTR and RTS.
The 'up' option asserts DTR and RTS.

>>  Example:  control down

send "<string>"

This dialer command will write the specified string to the interface.
The string quote marks are required, and the string may not contain
embedded control characters.  However, the standard C string escape
sequences are recognized (but \0 should not be used).

>> Example:  send "atdt555-1212"

speed [ 9600 | 4800 | 2400 | 1200 | 300 ]

This command sets the speed of the interface to one of the available
speeds. If the speed is missing, the speed will be displayed in the
dialer session window.

>> Example:  speed 1200

status [up | down]

wait <milliseconds> [ "test_string" ] [<speed>]

If only the time is specified, the dialer pauses for the desired number
of milliseconds.  Otherwise, the dialer reads until the <test_ string>
is detected on the interface.

If the string is not detected within the desired time, the autodialer
will reset.  The string quote marks are required, and the string may
not contain embedded control characters. However, the standard C string
escape sequences are recognized (but \0 should not be used).

If the <speed> parameter is specified, the dialer will continue to read
characters until a non-digit is detected.  The string read is converted
to an integer, and used to set the interface speed.  If the trailing
non-digit is not detected within the desired time, or the integer value
is not a valid speed, the autodialer will reset.

>> Example:  wait 45000 "CONNECT" 1200
:dir
dir [<dirname>]

List the contents of the specified directory on the console. If no argument is
given, the current directory is listed.

Note that this command works by first listing the directory into a temporary
file, and then creating a 'more' session to display it.  After this completes,
the temporary file is deleted.

>> Example:  dir spool/mail
:domain
domain addserver <host> [<host> ... ]
domain cache clean [off|on]                          Default: off
domain cache list
domain cache size [<entries>]                         Default: 20
domain cache wait <seconds>                          Default: 300
domain dropserver <host> [<host> ...]
domain list
domain maxwait <seconds>                              Default: 60
domain query <host>
domain remote add <host> [<host> ...]
domain remote drop <host> [<host> ...]
domain remote list
domain remote retry [<n>]                              Default: 2
domain remote trace [on|off]                         Default: off
domain retry [<n>]                                     Default: 2
domain suffix [<domain_suffix>]                Default: ampr.org.
domain trace [on|off]                                Default: off
domain translate [on|off]                             Default: on
domain verbose [on|off]                              Default: off
:dump
dump <hex_memory_address> | <.> [<decimal_range>]

The 'dump' command shows memory in hex and ascii.

<hex_memory_address> is a 32-bit value for a PC, split into page address and
page offset.  A colon delimiter between page and offset is neither used nor
accepted.

If decimal-range is not given, 128 bytes are displayed.

>> Example:  dump 1a2b3c4d     (to dump from address 1a2b:3c4d)

This produces a display of the form:

................................................................
|           Main Memory Dump Of Location 1A2B:3C4D             |
|Addr (offset)       Hexadecimal                     Ascii     |
|----                -----------                     -----     |
|                                                              |
|0000 16 26 ff 77 14 1e b8 ... 02 02 cd 41 83  .&.w..8>"P...MA.|
|0010 c4 08 3d ff ff 75 05 ... 19 c4 5e ee 26  D.=..u.8..k.D^n&|
|0020 c4 1f 8c 46 f0 89 5e ... 0b 46 f0 74 03  D..Fp.^n.Fn.Fpt.|
|0030 e9 b9 fe 33 c0 8b e5 ... ec 83 ec 04 c4  i9~3@.e]KU.l.l.D|
|0040 1e c2 77 8c 46 fe 89 ... c4 5e fc 26 8b  .Bw.F~.^|k2D^|&.|
|0050 57 28 26 8b 47 26 bb ... 1f 3b d1 75 11  W(&.G&;..9..;Qu.|
|0060 3b c3 75 0d ff 76 fe ... e8 1d 00 83 c4  ;Cu..v~.v|.h...D|
|0070 04 c4 5e fc 26 c4 1f ... 5e fc 8b 46 fc  .D^|&D..F~.^|.F||
|..............................................................|
:echo
echo [accept|refuse]                              Default: accept

Display or set the flag controlling client Telnet's response to a remote WILL
ECHO offer.

The Telnet presentation protocol specifies that in the absence of a negotiated
agreement to the contrary, neither end echoes data received from the other.
In this mode, a Telnet client session echoes keyboard input locally and
nothing is actually sent until a CR is typed.

Local line editing is also performed: backspace deletes the last character
typed, while control-U deletes the entire line.

When communicating from keyboard to keyboard the standard local echo mode is
used, so the setting of this parameter has no effect.  However, many
timesharing systems (e.g. UNIX) prefer to do their own echoing of typed input.
(This makes screen editors work right, among other things). Such systems send
a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet
connection request.

If 'echo accept' is in effect, a client Telnet session will automatically
return a DO ECHO response.  In this mode, local echoing and editing is turned
off and each key stroke is sent immediately (subject to the Nagle tinygram
algorithm in TCP).

While this mode is just fine across an Ethernet, it is clearly inefficient and
painful across slow paths like packet radio channels.  Specifying 'echo
refuse' causes an incoming WILL ECHO offer to be answered with a DONT ECHO;
the client Telnet session remains in the local echo mode.  Sessions already in
the remote echo mode are unaffected. (Note: Berkeley Unix has a bug in that
it will still echo input even after the client has refused the WILL ECHO
offer.  To get around this problem, enter the 'stty - echo' command to the
shell once you have logged in).

>> Example:  echo accept
:eol
eol [unix | standard]                           Default: standard

Display or set Telnet's end-of-line behavior when in remote echo mode.  In
'standard' mode, each key is sent as is.  In 'unix' mode, CRs are translated
to LFs.

This command is not necessary with all UNIX systems; use it only when you find
that a particular system responds to LFs but not to CRs.

Only SunOS release 3.2 seems to exhibit this behavior; later releases are fixed.

>> Example:  eol standard
:errors
errors [on | off]
:exit
exit

Exit from NOS and return to DOS.
:expire
expire
:finger
finger <username[@host]> [<username[@host]> ...]

Issue a network 'finger' request for <username> at <host>. Finger is typically
used to find out specific information about users on local or remote hosts.
By fingering a user, you can find out such information as a user's name, his
mailing address, telephone number, QSL information, and other useful facts.
This information is kept in a separate text file for each user.

The finger command under NOS can be issued in any of the following three ways:

  finger <username>           >> Examples: finger bob
  finger <username>@<host>                 finger bob@ns9bob
  finger @<host>                           finger @ns9bob

:fkey
fkey

Display the key_numbers for the function keys.  This command produces a chart
with all possible function keys.

'fn'  refers to Function_key_n
'sfn' refers to SHIFT-Function_key_n
'cfn' refers to CTRL-Function_key_n
'afn' refers to ALT-Function_key_n
'ar'  refers to the arrow keys

:fkey
fkey <key_number> [<value> | "<string>" ]

Display or define a new setting for a function key.

Control characters can be included in the string by prefixing with the ^
character (SHIFT 6 on most keyboards); e.g. CR is entered as ^M.  To insert a
^ in the string, enter ^^.

>> Examples:  fkey 87 "trace tnc0 211^M"  (SHIFT-F4 turns trace
                                             on)
              fkey 72 ""                  (disable up arrow)

:ftp
ftp <host>

The command 'ftp' is used to initiate an FTP session with <host>. When the
session is established, you will enter converse mode on the new FTP session.

When in converse mode with an FTP server, only the FTP sub-commands will be
valid.  This will remain true until the FTP 'quit' command is issued, ending
the FTP session, and returning you to the "net>" prompt.

When the connection between the two machines is opened, you'll get a banner
from the remote machine, followed by a prompt for your user name and then your
password.  If you've negotiated with the person at the remote machine to have
a special user name and password set up for you in his or her FTPUSERS file,
use that.

If not, use one of the special user names, "anonymous" or "guest" or "bbs",
and in this case, use your callsign as your password. Your password is
recorded in the log file on the remote host, allowing the manager of that
host to keep track of FTP activity.

To perform an automatic login to selected hosts, you can set up the NET.RC
file.  Each line in the file contains the hostname, user login name and
password, each item separated by a space.
:ftype
ftype [ ascii | binary ]                           Default: ascii

Display or set the mode for FTP file transfer.  See the FTP
'type' sub-command.

If the architecture of the local and remote hosts is the same, it is
preferable to set 'ftype' to binary, even for ASCII file transfers, as binary
transfer is much quicker.

>> Example:  ftype binary
:ftptdisc
ftpdisc
:help
help

The NOS 'help' or '?' command provides help for all the top-level NOS
commands. The "?" command by itself provides a list of the valid commands.
The "help" command by itself provides a brief description of the commands.
Either command followed by a commandname will provide information on that
particular command, if available.

To obtain more help on a particular command, type the command name
followed by a question mark.

>>  Example:  attach ?
:history
:hop
The 'hop' commands are used to test the connectivity of the
network.

:hop
hop check <host>

Initiate a hop check session to the specified host. This uses a series
of UDP "probe" packets with increasing IP time-to-live (TTL) fields to
determine the sequence of gateways in the path to the specified
destination.  This function is patterned after the UNIX 'traceroute'
facility.

ICMP message tracing should be turned off before this command is executed
(see the 'icmp trace' command).

>> Example:  hop check ns9liz

:hop
hop maxttl [<hops>]                                   Default: 30

Display or set the maximum TTL value to be used in hop check sessions.
This effectively bounds the radius of the search.

>> Example:  hop maxttl 10

:hop
hop maxwait [<seconds>]                                Default: 5

Display or set the maximum interval that a hop check session will wait
for responses at each stage of the trace.

>> Example: hop maxwait 60

:hop
hop queries [<count>]                                  Default: 3

Display or set the number of UDP probes that will be sent at each stage
of the trace.

>> Example:  hop queries 2

:hop
hop trace [on | off]                                 Default: off

Display or set the flag that controls the display of additional
information during a hop check session.

>> Example:  hop trace on
:hostname
hostname [<hostname>]

Display or set the local host name.  By convention this should be the same as
the host's primary domain name.  This string is used only in the greeting
messages of the various network servers; note that it does NOT set the
system's IP address.

If <hostname> is the same as an <interface> defined in an 'attach' command,
this command will search for a CNAME domain resource record which corresponds
to the IP address of the <interface>.

>> Example:  hostname ns9bob
:icmp
icmp

These commands are for the Internet Control Message Protocol (ICMP) service.


icmp echo [on | off]                                  Default: on

Display or set the flag controlling the asynchronous display of
ICMP Echo Reply packets.  This flag must be on for one-shot pings
to work (see the 'ping' command).

>> Example:  icmp echo off


icmp status

Display statistics about ICMP, including the number of ICMP
messages of each type sent or received.


icmp trace [on | off]                                Default: off

Display or set the flag controlling the display of ICMP error
messages.  These informational messages are generated by Internet
routers in response to routing, protocol or congestion problems.

This option should be turned off before using the 'hop check'
facility, because it relies on ICMP Time Exceeded messages, and
the asynchronous display of these messages will be mingled with
'hop check' command output.

>> Example:  icmp trace on
:ifconfig
ifconfig
:info
info [hostname]

Start an Internet connection to the Information Center (INFO) at "hostname", or
on the local system if no "hostname" is given

>> Example: info ko4ks.ampr.org
:ip
ip
:isat
isat [on | off]                                      Default: off

Display or set the AT flag.  If an AT-type clock is in use, set the flag 'on',
to allow measurement of time in milliseconds. Otherwise, time is measured in
clock ticks (55 milliseconds tick).

>> Example:  isat on
:kick
kick [<session_number>]

Kick all sockets associated with a session; if no argument is given, kick the
current session.  Performs the same function as the 'ax25 kick' and 'tcp kick'
commands, but is easier to type.

>> Example:  kick 3
:lock
lock
:log
log [stop | off | <filename>]                             Default: stop

Display or set the filename for logging server sessions.

If 'stop' or 'off' is given as the argument, logging is terminated (the servers
themselves are unaffected).

If a file name is given as an argument, server session log entries will be
appended to it.

>> Examples:  log dump/session.log
              log stop

:lzw
lzw <mode|bits>
:mail
mail

The 'mail' command allows you to escape from NOS and start an external mailer
program.  When you exit from the mailer, you will be returned to NOS.

The BM mailer program (BM.EXE) and its startup script (BM.RC) must be located
at the DOS root.

The ELM mailer (ELM.EXE) and its startup script (ELM.RC) may reside anywhere.
Their location is specified by two DOS environment variables:

    MAILER defines the location of ELM.EXE.
    HOME   defines the location of ELM.RC.


>> Examples:  SET MAILER=c:\nos\elm.exe      (the ELM mailer)
              SET HOME=c:\nos                (location of ELM.RC)

(Note that 'SET' is a DOS command, so pathnames require a backslash, not a
forward slash).
:mbox
mbox
:md
md <directory>

Create a sub-directory in the current working directory.

See also: mkdir

>> Example:  md tmp
:memory
memory
:mkdir
mkdir <directory>

Create a sub-directory in the current working directory.

See also: md

>> Example:  mkdir tmp
:mode
mode <interface> [vc | datagram]                Default: datagram

Display or set the default transmission mode on the specified AX.25 interface.

In 'vc' (virtual circuit) mode, IP packets are encapsulated in AX.25 I-frames
and are acknowledged at the link level according to the AX.25 protocol. Link
level connections are opened if necessary. This is the conventional mode used
by TNCs operating in native mode.

In 'datagram' mode, IP packets are encapsulated in AX.25 UI-frames and
transmitted without any other link level mechanisms, such as connections or
acknowledgements.

In both modes, ARP is used to map IP to AX.25 addresses. The defaults can be
overridden with the type-of-service (TOS) bits in the IP header. Turning on
the "reliability" bit causes I-frames to be used, while turning on the "low
delay" bit uses UI-frames. (The effect of turning on both bits is undefined
and subject to change).

In both modes, IP-level fragmentation is done if the datagram is larger than
the interface MTU.  In virtual circuit mode, however, the resulting datagrams
(or fragments) are further fragmented at the AX.25 layer if they are still
larger than the AX.25 'paclen' parameter.

In AX.25 fragmentation, datagrams are broken into several I-frames and
reassembled at the receiving end before being passed to IP.  This is
preferable to IP fragmentation whenever possible because of decreased overhead 
(the IP header isn't repeated in each fragment) and increased robustness (a
lost fragment is immediately retransmitted by the link layer).

>> Example:  mode tnc0 vc

:mode
mode netrom [vc | datagram]                     Default: datagram

Display or set the default transmission mode for NET/ROM transmissions.
:more
more <filename> [searchstring]
Display the specified file a screen at a time.

To proceed to the next line, hit the CR key.

To proceed to the next screen, press the space bar.

To cancel the display, hit the 'q' key.

The 'more' command creates a session that you can suspend and resume just like
any other session.

If a 'searchstring' is given, only lines that contain the 'searchstring' will
be displayed.

>> Example:  more domain.txt
:motd
motd ["<string>"]

Display or set the system-wide Message-of-the-Day.  This message is sent when
another station initiates a chat (ttylink) session with you.

>> Example:
     motd "If unattended please leave a message in the mailbox"
:multitask
multitask [on|off]                                    Default: on

Display or set NOS multitasking.  When set to 'on', NOS continues to run when
the user has issued the shell (!) or 'mail' command. This enables NOS to
process packets and begin sessions even while the user is at the DOS prompt or
in BM (or other mailer).

The disadvantage is increased memory usage, since memory cannot be allocated by
NOS due to the presence of the other program. Thus most versions of NOS grab
some memory before actually shelling out and this remains on the heap after NOS
is re-entered.  Consequently the amount of core memory available drops
significantly the first time a shell is used.

If the "xspawn" command is on, the multitask command is ignored.

See also: !, shell, and xspawn

>> Example:  multitask on
:news
news [hostname]

Start an Internet connection to the News Center (NEWS) at "hostname", or
on the local system if no "hostname" is given

>> Example: news ko4ks.ampr.org
:nntp
:param
param <interface> [<cmd> <value>]

The 'param' command allows device-specific control parameters to be sent to an
interface, and the status to be read back from an interface.

On a KISS TNC interface, 'param' control packets to the TNC. Argument to the
'param' command are always decimal.

On a SLIP interface, the 'param' command allows the baud rate to be read
(without arguments) or set.

The implementation of this command for the various interface drivers is
incomplete and subject to change.

If no "cmd" and "value" are given, the 'param' command displays interface
characteristics.  The actual data displayed depends on the interface type.

Specific commands for a KISS interface are shown below.

param <KISS_interface> 0 <data frame>
param <KISS_interface> 1 <TX_delay>                  (10mS units)
param <KISS_interface> 2 <persistence>                    (0-255)
param <KISS_interface> 3 <slot_time>                 (10mS units)
param <KISS_interface> 4 <TX_tail>                   (10mS units)
param <KISS_interface> 5 <n>
param <KISS_interface> 255                 (terminates KISS mode)

>> Example:  param tnc0 5 0                         (Half duplex)
:ping
ping <host> [<length> [<interval> [<incflag>]]]

Ping (send ICMP Echo Request packets to) the specified <host>.

By default the data field contains only a small timestamp to aid in determining
round trip time; if the optional <length> argument is given, the appropriate
number of data bytes (consisting of hex 55) are added to the ping packets.

If the <interval> parameter is supplied, pings will be repeated indefinitely at
the specified interval in milliseconds.

If no interval value is supplied, a single, "one-shot" ping is done. Responses
to one-shot pings appear asynchronously on the command screen, while repeated
pings create a session that may be suspended and resumed.  Pinging continues
until the session is manually reset.

The <incflag> option causes a repeated ping to increment the target IP address
for each ping; it is an experimental feature for searching blocks of IP
addresses for active hosts.

The round-trip times reported by the 'ping' command depend on the setting of
the 'isat' mode.  If 'isat' is on, times are reported to the nearest
millisecond.  If 'isat' is off, times are reported in multiples of 55mS.

>> Examples:  ping ns9liz
              ping ns9liz 10 5000 1
:pistatus
:pop
:popmail
:ppp
:prompt
prompt [hostname | dirname]                             Default: hostname

Displays/toggles whether the Command Session prompt is the current Hostname
or the current directory (like a DOS prompt, but in lower case).

>> Example: prompt dirname
:ps
ps

Display all current processes in the system. The fields are as follows:

PID:     Process ID (the address of the process descriptor).

SP:      The current value of the process stack pointer.

stksize: The size of the stack allocated to the process.

maxstk:  The apparent peak stack utilization of this process. This is done in
a somewhat heuristic fashion, so the  numbers should be treated as approximate.
If this number reaches or exceeds the stksize figure, the system is almost
certain to crash; NOS program should be recompiled to give the process a larger
allocation when it is started.

event:   The event this task is waiting for, if it is not runnable.

fl:      Process status flags. There are three: I (Interrupts enabled), W
(Waiting for event) and S (suspended).

The I flag is set whenever a task has executed a pwait() call (wait for event)
without first disabling hardware interrupts. Only tasks that  wait for
hardware interrupt events will turn off this flag; this is done to avoid
critical sections and missed interrupts.

The W flag indicates that the process is waiting for an event; the event column
will be non-blank.  Note that although there may be several runnable processes
at any time (shown in the 'ps' listing as those without the W flag and with
blank event fields) only one process is actually running at any one instant

in and out:  The socket reference numbers.  Use the 'socket' command to obtain
more detailed information.
:pwd
pwd [<directory>]

An alias for the 'cd' command.

>> Example:  pwd spool/mail
:quote
quote [hostname]

Start an Internet connection to the Quote-of-the-Day Server at "hostname", or
on the local system if no "hostname" is given

>> Example: quote ko4ks.ampr.org
:rarp
rarp

Display RARP statistics.

The 'rarp' commands are associated with the Reverse Address
Resolution Protocol (RARP).  RARP is used where a station knows
its own Ethernet address or callsign but does not know its own IP
address.

:rarp
rarp query <interface> <ether_address|callsign> [<ether_address|callsign>...]

Issue a RARP request for an IP address for <ether_address> or
<callsign>, via <interface>.

>> Examples:  rarp query tnc0 NS9ZZZ-5
              rarp query en0 00:11:22:33:44:55
:rd
rd <directory>

Remove a sub-directory from the current working directory. The sub-directory
must be empty before 'rmdir' can be used.

See also: rmdir

>> Example:  rmdir tmp
:rdate
rdate <address>
:record
record [off | <filename>]                            Default: off

Opens <filename> and appends to it all data received or sent on the current
Telnet session.  (This includes up/downloading to a mailbox).

If you are in Telnet converse mode and want to initiate recording, you will
need to use the <F10> key to escape back to command mode to issue the 'record'
command.  The message "Recording into <filename>" will be displayed and another
Command Session prompt will be issued.  Enter CR on a blank line and you will
return to the Telnet converse mode with recording activated.

The command 'record off' stops recording and closes the file.

>> Example:  record dump/record/12345.rec
:remote
remote [-p port] [-k key] [-a kickaddr] <address> exit|reset|kick
:rename
rename <oldfilename> <newfilename>

Renames <oldfilename> to <newfilename>.

>> Example:  rename foo.bar foo2.bar
:reset
reset [<session_number>]

Reset the specified session; if no argument given, reset the current session.

This command should be used with caution since it does not reliably inform the
remote end that the connection no longer exists.  In TCP a reset (RST) message
will be automatically generated should the remote TCP send anything after a
local reset has been done.  In AX.25 the DM message performs a similar role.
Both are used to get rid of a lingering half-open connection after a remote
system has crashed.

>> Example: reset 3
:rmdir
rmdir <directory>

Remove a sub-directory from the current working directory. The sub-directory
must be empty before 'rmdir' can be used.

See also: rd

>> Example:  rmdir tmp
:route
:session
session [<session_number>] [flowmode [on|off]]           Default: off

NOS can handle multiple sessions.  For example, you can have an
FTP file transfer running at the same time as a Telnet session.

To monitor the sessions, use the 'session' command without
arguments.  This will give an output of the form:
...............................................................
  #  S#  Type  Rcv Snd State          Remote socket
                Q   Q
  1  -1  More   0   0 Limbo!      scripts/source/fkeys.lst
  2  144 FTP    0   0 Established ns9ken (ns9ken:ftp)
  3  148 Finger 0   1 SYN sent    ns9bob@ns9bob (ns9bob:finger)
 *4  151 Telnet 0   1 SYN sent    ns9gwa (ns9gwa:telnet)
  5  154 Telnet 0   0 Established Local BBS (ns9ken:telnet)
..............................................................

The session marked with an asterisk is the current session; to switch to that
session, simply hit CR.

To switch to another session, give the 'session' command with a session number.

To exit from a session back to the 'net>' prompt, hit <F10>.

The <flowmode> option controls the operation of the 'more' command for that
session.  This is handy, for example, for long directory listings coming from
an FTP session.  Escaping to command mode before issuing an FTP 'dir' command
and setting flowmode 'on' gives a page at a time to look at.  At any time you
can escape out again and switch flowmode off.

>> Example:  session 3
             session 5 flowmode on
:script
script <scriptname> [back]

Executes an Information Server Script File directly from the Command Session.
If the third parameter is "back", the script is executed non-interactively
with no user I/O stream.

:shell
shell [<DOS_external_command>]

The 'shell' command suspends NOS and let you escape to a sub-shell
(e.g. COMMAND.COM in DOS).

If 'multitask' is set to 'off', NOS activity is frozen while you are working
under the sub-shell.

When you leave the sub-shell (with the EXIT command in DOS), you are returned
to NOS.

Note that for the 'shell' and '!' commands to be useful there must be
sufficient unused memory for the sub-shell and any commands which you wish to
run under the sub-shell.

You can also execute an external DOS command from NOS.

[Internal DOS commands such as 'cd' or 'dir' or 'copy' do not work].

See also: !, multitask and xspawn

>> Examples:  sh
              sh edlin test
:skick
skick <socket#>
:smtp
smtp
:socket
socket [<socket_ref_number>]

Without an argument, the 'socket' command displays all active local sockets,
giving their type, the address of the associated protocol control block (PCB),
remote socket if connected, and the owner's process ID and name.

To get more detailed information about the status of a particular socket, you
can include the socket reference number <S#> in the socket command.
:source
source <script_filename>

The 'source' command runs a set of NOS commands which are in
<script_filename>.  This is a very convenient way of executing a series of
commands without having to enter them individually at the keyboard.

>> Example:  source routing1.nos
:split
split <interface> <callsign> [<digi_callsign> ...]

This command is exactly like the "connect" command, except you are place
in a TTYLINK (split) screen.

See also: connect
:start
start ax25|callbook|convers|daytime|discard|echo|finger|ftp|info|netrom|news|
:start
      nntp|pop|pop2|pop3|quote|remote|rip|smtp|telnet|time|tip|ttylink|tutor

Start the specified Internet server, allowing remote connection requests.

Normally these servers are started in the AUTOEXEC.NOS file. However, you may
not want to start all of the servers automatically.  For example, you may not
want to start the Telnet server until you know you will be available at the
keyboard to respond.  You can then enter 'start telnet' from the Command
Session prompt to activate the server.

The one server that requires other parameters is "tip". The syntax is:

     start tip iface [modem]

If the "modem" parameter is given, then connection start when DCD is asserted
and are dropped by bringing DCD and DTR low. Leave this parameter off for
direct connections to a terminal.

>> Example:  start ttylink
:statline
statline [on | off]

Displays/toggles the state of the Command Session's status line. All sessions
started inherit this property. Each individual session can be toggled on/off,
using the <INSERT> key.

>> Example: statline off
:status
status

The 'status' command displays general system information. This is useful for
monitoring file transfer activity.
:stop
stop ax25|callbook|convers|daytime|discard|echo|finger|ftp|info|netrom|news|
:stop
     nntp|pop|pop2|pop3|quote|remote|rip|smtp|telnet|time|tip|ttylink|tutor

Stop the specified Internet server, rejecting any further remote connect
requests.  Existing connections are allowed to complete normally.

For example, you could enter 'stop telnet' if you expect to be unavailable to
respond to a Telnet request.  Then, when anyone tries to telnet to you, they
will get the message "Closed (Reset)."  This is not the most informative
message, but possibly better than waiting endlessly to see if you will
respond to the telnet request.

>> Example:  stop pop
:strace
strace [on | off]

Displays/toggles whether trace output is going to a separate trace session.
If this is off, trace output will always go on the current screen.

>> Example: strace on
:tail
tail <filename> [lines]

The 'tail' command displays the tail-end (the last 18 lines) of a file.

>> Example:  tail longfile.txt
:tcp
tcp
:telnet
telnet <host> [<port_number>]             Default port_number: 23

The 'telnet' command allows you to initiate a connection using the Telnet
protocol.  The end result is much the same as doing an AX.25 connect in most
cases, but you'll be taking advantage of the attributes of the TCP/IP protocols.

The command creates a Telnet session to the specified host.  With the default
port number (23), a connection is made to the Telnet server at the remote host.

If the remote host is running a NOS Telnet server (i.e. the host has issued
the command 'start telnet'), you will be connected to the BBS on that host.
See the 'bbs' command.

Once the connection is made, you can then type back and forth just as if you
were connected with a normal TNC.  When you're done, use the <F10> key to
escape back to command mode, and then type 'close' to close the connection.

The Telnet session can be recorded to a file (using the 'record' command), or
an ASCII file can be uploaded instead of entering the information at the
keyboard (using the 'upload' command).

>> Examples:  telnet ns9ken
              telnet ns9liz 87         (same as 'ttylink ns9liz')
              telnet ns9ken 25         (talk to SMTP)

The following is a list of the common port numbers used by TNOS:

    7  ECHO            25  SMTP              513  RLOGIN
    9  DISCARD         37  TIME             1235  CALLBOOK
   13  DAYTIME         79  FINGER           3597  NEWS CENTER
   17  QUOTE           87  TTYLINK          3598  INFORMATION CENTER
   20  FTP-data       109  POP-2            3599  LEARNING CENTER
   21  FTP-control    110  POP-3            3600  CONFERENCE BRIDGE
   23  TELNET         119  NNTP
:thirdparty
third-party [on|off]                                  Default: on

Display or set the third-party flag.  When set to 'on', the
mailbox will handle third-party messages.  [Most amateurs are not
permitted to do this].

>> Example:  third-party off
:time
time

Returns the current date and time

:tip
tip <interface>			(asyc only!)

Start a Terminal Interface Protocol (TIP) session that connects to the
specified interface in "dumb terminal" mode.

All data subsequently transmitted and received via the interface are raw
characters, without any protocol envelope.  Any packet traffic (IP datagrams,
etc) routed to the interface while a 'tip' session exists will be discarded.

The interface must have already been attached with the 'attach' command.

To close a 'tip' session, use the 'reset' command.  The interface will then
revert to normal slip, nrs or kiss mode operation.

This feature is primarily useful for manually communicating with a serial
device (e.g. a TNC operating in native "cmd:" mode), or for establishing SLIP
connections via modems.

>> Example:  tip tnc0
:trace
trace [<interface> [off | <BTIO_flags> [<tracefile>]]]

Controls packet tracing by the interface drivers.

The Broadcast/Type/Input/Output (BTIO) flag settings specify the amount of
information produced. Tracing is controlled on a per-interface basis; without
arguments, 'trace' gives a list of all defined interfaces and their tracing
status. The BTIO settings are expressed as a hexadecimal number as follows:

B=1:  Broadcast filter flag enabled.  Only packets specifically addressed to
      this interface will be displayed.  Broadcast packets will be ignored.

B=0:  Broadcast filter flag disabled.

T=2:  Protocol headers are decoded, and the entire packet (headers AND data)
      is also displayed in hexadecimal and ASCII, 16 characters per line.
      Unprintable characters are displayed as dots.

T=1:  Protocol headers are decoded, and data (but not the headers themselves)
      are displayed as ASCII characters, 64 characters/line.

T=0:  Protocol headers are decoded, but data is not displayed.

I=1:  Enable tracing of input packets.

I=0:  Disable tracing of input packets.

O=1:  Enable tracing of output packets.

O=0:  Disable tracing of output packets.

By default, trace output is displayed on the screen.

If a <trace_filename> is given, trace output is saved in the specified file.
The trace file is closed by setting the BTIO flags to 000.

>> Examples: trace tnc0 211 tnc0.trc   (save trace in 'tnc0.trc')
             trace tnc0 0              (stop trace & close file)
:tutor
tutor [hostname]

Start an Internet connection to the Learning Center (TUTOR) at "hostname", or
on the local system if no "hostname" is given

>> Example: tutor ko4ks.ampr.org
:ttylink
ttylink <address> [port]
:udp
udp status

Display the status of all UDP receive queues.
:upload
upload [<filename>]

The 'upload' command without a parameter returns the current upload status.

When a filename is specified in the command, the file is opened and sent as
though it were typed on the terminal.

The file must be ASCII, not binary.  If you want to upload a binary file,
you must first convert it to ASCII, using 'uuencode' for example.

If you are in converse mode and want to initiate uploading, you will need to
use the <F10> key to escape back to command mode to issue the 'upload'
command.  The uploading is initiated, but the file contents are not displayed
on the screen during the uploading.

To find out when uploading is finished, use the 'upload' command from time to
time.  While uploading is in progress, it will report "Uploading
<filename>", and when uploading is finished it will report "Uploading off".

>> Example:  upload foo.txt
:version
version

The 'version' command displays information about the TNOS package.
:watch
watch [on|off]                                       Default: off

The 'watch' command displays the current software stopwatch values, with min
and max readings for each.  This facility allows a programmer to measure the
execution time of critical sections of code with microsecond resolution.

This command is supported only on the IBM PC, and the meaning of each
stopwatch value depends on where the calls have been inserted for test
purposes; the distribution copy of NOS usually has no stopwatch calls.

[With some machines it may be essential to keep 'watch' turned off, as there
are unwanted side effects if it is turned on.]                  
:watchdog
watchdog   [on | off]                                Default: off

Display or set the watchdog timer.

If internal operations cease for 300 seconds and watchdog is enabled, a
system reset is performed.  This is useful for remote sites.

See also the 'remote' command.

>> Example:  watchdog on
:wpages
wpages
:write
write <user|sock#> <"msg">
:writeall
writeall <"msg">
:xspawn
xspawn [on | off]

Displays/toggles whether all DOS memory will be used for "shell" commands. If
"xspawn" is on, TNOS will be swapped to XMS (or disk, if no extended memory
is available). When the command executed is complete, TNOS is restored. If
this option is set, the state of the "multitask" command is ignored, since
TNOS can't be swapped out AND also multitasking.

See also: !, shell, and multitask
